<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="theme-color" content="#222">
<meta name="generator" content="Hexo 4.2.1">
  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
  <link rel="mask-icon" href="/images/logo.svg" color="#222">

<link rel="stylesheet" href="/css/main.css">


<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">

<script id="hexo-configurations">
    var NexT = window.NexT || {};
    var CONFIG = {"hostname":"lianyouli.gitee.io","root":"/","scheme":"Mist","version":"7.8.0","exturl":false,"sidebar":{"position":"right","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},"path":"search.xml"};
  </script>

  <meta name="description" content="对于学习一个新的事物时，最好的开始就是把它运行起来；当实操时，才能更深地理解一些新的概念以及其边界。 flink 1.14.4 standalone 安装， Zookeeper HA 安装">
<meta property="og:type" content="article">
<meta property="og:title" content="Flink安装">
<meta property="og:url" content="https://lianyouli.gitee.io/IT/it-bigdata-flink-installation/index.html">
<meta property="og:site_name" content="联友的Blog">
<meta property="og:description" content="对于学习一个新的事物时，最好的开始就是把它运行起来；当实操时，才能更深地理解一些新的概念以及其边界。 flink 1.14.4 standalone 安装， Zookeeper HA 安装">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://lianyouli.gitee.io/IT/it-bigdata-flink-installation/image-20220527210655782.png">
<meta property="og:image" content="https://lianyouli.gitee.io/IT/it-bigdata-flink-installation/image-20220527212122441.png">
<meta property="og:image" content="https://lianyouli.gitee.io/IT/it-bigdata-flink-installation/image-20220528092326670.png">
<meta property="og:image" content="https://lianyouli.gitee.io/IT/it-bigdata-flink-installation/image-20220528092940808.png">
<meta property="og:image" content="https://lianyouli.gitee.io/IT/it-bigdata-flink-installation/image-20220528093009336.png">
<meta property="og:image" content="https://lianyouli.gitee.io/IT/it-bigdata-flink-installation/image-20220528092526928.png">
<meta property="og:image" content="https://lianyouli.gitee.io/IT/it-bigdata-flink-installation/image-20220528092824803.png">
<meta property="article:published_time" content="2022-05-27T11:10:37.000Z">
<meta property="article:modified_time" content="2022-05-28T01:33:01.320Z">
<meta property="article:author" content="李联友">
<meta property="article:tag" content="streaming">
<meta property="article:tag" content="bigdata">
<meta property="article:tag" content="flink">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://lianyouli.gitee.io/IT/it-bigdata-flink-installation/image-20220527210655782.png">

<link rel="canonical" href="https://lianyouli.gitee.io/IT/it-bigdata-flink-installation/">


<script id="page-configurations">
  // https://hexo.io/docs/variables.html
  CONFIG.page = {
    sidebar: "",
    isHome : false,
    isPost : true,
    lang   : 'zh-CN'
  };
</script>

  <title>Flink安装 | 联友的Blog</title>
  


  <script>
    var _hmt = _hmt || [];
    (function() {
      var hm = document.createElement("script");
      hm.src = "https://hm.baidu.com/hm.js?eb9f10e46b1f09801805fc668f13d477";
      var s = document.getElementsByTagName("script")[0];
      s.parentNode.insertBefore(hm, s);
    })();
  </script>




  <noscript>
  <style>
  .use-motion .brand,
  .use-motion .menu-item,
  .sidebar-inner,
  .use-motion .post-block,
  .use-motion .pagination,
  .use-motion .comments,
  .use-motion .post-header,
  .use-motion .post-body,
  .use-motion .collection-header { opacity: initial; }

  .use-motion .site-title,
  .use-motion .site-subtitle {
    opacity: initial;
    top: initial;
  }

  .use-motion .logo-line-before i { left: initial; }
  .use-motion .logo-line-after i { right: initial; }
  </style>
</noscript>

<link rel="alternate" href="/atom.xml" title="联友的Blog" type="application/atom+xml">
</head>

<body itemscope itemtype="http://schema.org/WebPage">
  <div class="container use-motion">
    <div class="headband"></div>

    <header class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-brand-container">
  <div class="site-nav-toggle">
    <div class="toggle" aria-label="切换导航栏">
      <span class="toggle-line toggle-line-first"></span>
      <span class="toggle-line toggle-line-middle"></span>
      <span class="toggle-line toggle-line-last"></span>
    </div>
  </div>

  <div class="site-meta">

    <a href="/" class="brand" rel="start">
      <span class="logo-line-before"><i></i></span>
      <h1 class="site-title">联友的Blog</h1>
      <span class="logo-line-after"><i></i></span>
    </a>
      <p class="site-subtitle" itemprop="description">密涅瓦的猫头鹰在黄昏起飞</p>
  </div>

  <div class="site-nav-right">
    <div class="toggle popup-trigger">
    </div>
  </div>
</div>




<nav class="site-nav">
  <ul id="menu" class="main-menu menu">
        <li class="menu-item menu-item-home">

    <a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>

  </li>
        <li class="menu-item menu-item-about">

    <a href="/about/" rel="section"><i class="fa fa-user fa-fw"></i>关于</a>

  </li>
        <li class="menu-item menu-item-tags">

    <a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签<span class="badge">25</span></a>

  </li>
        <li class="menu-item menu-item-categories">

    <a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类<span class="badge">8</span></a>

  </li>
        <li class="menu-item menu-item-archives">

    <a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档<span class="badge">31</span></a>

  </li>
  </ul>
</nav>




</div>
    </header>

    
  <div class="back-to-top">
    <i class="fa fa-arrow-up"></i>
    <span>0%</span>
  </div>


    <main class="main">
      <div class="main-inner">
        <div class="content-wrap">
          

          <div class="content post posts-expand">
            

    
  
  
  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
    <link itemprop="mainEntityOfPage" href="https://lianyouli.gitee.io/IT/it-bigdata-flink-installation/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="image" content="/images/header.jpg">
      <meta itemprop="name" content="李联友">
      <meta itemprop="description" content="">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="联友的Blog">
    </span>
      <header class="post-header">
        <h1 class="post-title" itemprop="name headline">
          Flink安装
        </h1>

        <div class="post-meta">
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="far fa-calendar"></i>
              </span>
              <span class="post-meta-item-text">发表于</span>

              <time title="创建时间：2022-05-27 19:10:37" itemprop="dateCreated datePublished" datetime="2022-05-27T19:10:37+08:00">2022-05-27</time>
            </span>
              <span class="post-meta-item">
                <span class="post-meta-item-icon">
                  <i class="far fa-calendar-check"></i>
                </span>
                <span class="post-meta-item-text">更新于</span>
                <time title="修改时间：2022-05-28 09:33:01" itemprop="dateModified" datetime="2022-05-28T09:33:01+08:00">2022-05-28</time>
              </span>
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="far fa-folder"></i>
              </span>
              <span class="post-meta-item-text">分类于</span>
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
                  <a href="/categories/IT/" itemprop="url" rel="index"><span itemprop="name">IT</span></a>
                </span>
            </span>

          

        </div>
      </header>

    
    
    
    <div class="post-body" itemprop="articleBody">

      
        <blockquote>
<p>对于学习一个新的事物时，最好的开始就是把它运行起来；当实操时，才能更深地理解一些新的概念以及其边界。</p>
<p>flink 1.14.4 standalone 安装， Zookeeper HA 安装</p>
</blockquote>
<a id="more"></a>

<h2 id="Standalone"><a href="#Standalone" class="headerlink" title="Standalone"></a>Standalone</h2><p>如果一台机器，直接启动就可以使用了。</p>
<p>如果是多台机器，则需要在</p>
<ul>
<li><strong>masters</strong> 配置一台job manager 主机名称</li>
<li><strong>workers</strong>文件里配置所有节点信息</li>
<li><strong>jobmanager.rpc.address</strong> 配置成<strong>masters</strong>里的机器主机名称。</li>
<li>服务启动账户在机器之间免密登录</li>
</ul>
<h2 id="Zookeeper-HA"><a href="#Zookeeper-HA" class="headerlink" title="Zookeeper HA"></a>Zookeeper HA</h2><p><a href="https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/deployment/ha/zookeeper_ha/" target="_blank" rel="noopener">ZooKeeper HA Services | Apache Flink</a></p>
<h3 id="flink-shade-hadoop"><a href="#flink-shade-hadoop" class="headerlink" title="flink-shade-hadoop"></a>flink-shade-hadoop</h3><p>根据自己的版本将对应的flink-shaded-hadoop-X-uber下载下来，放到lib目录。 因为HA时，参数high-availability.storageDir 需要存放在分布式文件系统上。</p>
 <img src="/IT/it-bigdata-flink-installation/image-20220527210655782.png" alt="image-20220527210655782" style="zoom:50%;">

<h3 id="flink-conf-xml"><a href="#flink-conf-xml" class="headerlink" title="flink-conf.xml"></a>flink-conf.xml</h3><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#==============================================================================</span></span><br><span class="line"><span class="comment"># High Availability</span></span><br><span class="line"><span class="comment">#==============================================================================</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># The high-availability mode. Possible options are 'NONE' or 'zookeeper'.</span></span><br><span class="line"><span class="comment">#</span></span><br><span class="line"><span class="attr">high-availability:</span> <span class="string">zookeeper</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># The path where metadata for master recovery is persisted. While ZooKeeper stores</span></span><br><span class="line"><span class="comment"># the small ground truth for checkpoint and leader election, this location stores</span></span><br><span class="line"><span class="comment"># the larger objects, like persisted dataflow graphs.</span></span><br><span class="line"><span class="comment"># </span></span><br><span class="line"><span class="comment"># Must be a durable file system that is accessible from all nodes</span></span><br><span class="line"><span class="comment"># (like HDFS, S3, Ceph, nfs, ...) </span></span><br><span class="line"><span class="comment">#</span></span><br><span class="line"><span class="attr">high-availability.storageDir:</span> <span class="string">hdfs:///lab/flink/ha/</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># The list of ZooKeeper quorum peers that coordinate the high-availability</span></span><br><span class="line"><span class="comment"># setup. This must be a list of the form:</span></span><br><span class="line"><span class="comment"># "host1:clientPort,host2:clientPort,..." (default clientPort: 2181)</span></span><br><span class="line"><span class="comment">#</span></span><br><span class="line"><span class="attr">high-availability.zookeeper.quorum:</span> <span class="string">localhost:2181</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># The root ZooKeeper node, under which all cluster nodes are placed.</span></span><br><span class="line"><span class="attr">high-availability.zookeeper.path.root:</span> <span class="string">/flink</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># Optional, The cluster-id ZooKeeper node, under which all required coordination data for a cluster is placed.</span></span><br><span class="line"><span class="attr">high-availability.cluster-id:</span> <span class="string">/flink_arthur_ns</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># ACL options are based on https://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html#sc_BuiltinACLSchemes</span></span><br><span class="line"><span class="comment"># It can be either "creator" (ZOO_CREATE_ALL_ACL) or "open" (ZOO_OPEN_ACL_UNSAFE)</span></span><br><span class="line"><span class="comment"># The default value is "open" and it can be changed to "creator" if ZK security is enabled</span></span><br><span class="line"><span class="comment">#</span></span><br><span class="line"><span class="comment"># high-availability.zookeeper.client.acl: open</span></span><br></pre></td></tr></table></figure>



<h3 id="zookeeper"><a href="#zookeeper" class="headerlink" title="zookeeper"></a>zookeeper</h3><p>我使用的是独立的单节点的zookeeper。</p>
<p>不过flink自带了zookeeper，可以通过配置conf/zoo.cfg，然后执行bin/start-zookeeper-quorum.sh 启动</p>
<h3 id="masters"><a href="#masters" class="headerlink" title="masters"></a>masters</h3><p>根据自己实际情况配置多个master，以实现HA。不过我只配置一个做测试。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">localhost:8081</span><br><span class="line">extra-master-node1:8081</span><br><span class="line">...</span><br></pre></td></tr></table></figure>

<h3 id="workers"><a href="#workers" class="headerlink" title="workers"></a>workers</h3><p>配置不是job manager角色的机器。</p>
<h3 id="启动"><a href="#启动" class="headerlink" title="启动"></a>启动</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">(base) ➜  flink bin/start-cluster.sh </span><br><span class="line">Starting HA cluster with 1 masters.</span><br><span class="line">Starting standalonesession daemon on host sleety.local.</span><br><span class="line">Starting taskexecutor daemon on host sleety.local.</span><br></pre></td></tr></table></figure>

<h3 id="zookeeper-记录"><a href="#zookeeper-记录" class="headerlink" title="zookeeper 记录"></a>zookeeper 记录</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><span class="line">[zk: localhost:2181(CONNECTED) 43] ls /</span><br><span class="line">[flink, zookeeper]</span><br><span class="line">[zk: localhost:2181(CONNECTED) 44] ls /flink</span><br><span class="line">[flink_arthur_ns]</span><br><span class="line">[zk: localhost:2181(CONNECTED) 45] ls /flink/flink_arthur_ns</span><br><span class="line">[jobgraphs, leader]</span><br><span class="line">[zk: localhost:2181(CONNECTED) 46] ls /flink/flink_arthur_ns/leader</span><br><span class="line">[dispatcher, resource_manager, rest_server]</span><br><span class="line">[zk: localhost:2181(CONNECTED) 47] ls /flink/flink_arthur_ns/leader/resource_manager</span><br><span class="line">[connection_info, latch]</span><br><span class="line">[zk: localhost:2181(CONNECTED) 48] get /flink/flink_arthur_ns/leader/resource_manager/connection_info</span><br><span class="line">��w=;akka.tcp://flink@localhost:52797/user/rpc/resourcemanager_1srjava.util.UUID����m�/J</span><br><span class="line">                                                                                        leastSigBitsJ</span><br><span class="line">                                                                                                     mostSigBitsxp�kNP�OD�)7Y��H?</span><br><span class="line">[zk: localhost:2181(CONNECTED) 49] get /flink/flink_arthur_ns/leader/rest_server/connection_info </span><br><span class="line">��whttp://localhost:8081srjava.util.UUID����m�/J</span><br><span class="line">                                                leastSigBitsJ</span><br><span class="line">                                                             mostSigBitsxp�</span><br><span class="line">                                                                           �0A�hVp	��J�</span><br><span class="line">[zk: localhost:2181(CONNECTED) 50]</span><br></pre></td></tr></table></figure>

<h3 id="hdfs-ha目录"><a href="#hdfs-ha目录" class="headerlink" title="hdfs ha目录"></a>hdfs ha目录</h3><p><img src="/IT/it-bigdata-flink-installation/image-20220527212122441.png" alt="image-20220527212122441"></p>
<h2 id="Yarn"><a href="#Yarn" class="headerlink" title="Yarn"></a>Yarn</h2><p><a href="https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/deployment/resource-providers/yarn/" target="_blank" rel="noopener">YARN | Apache Flink</a></p>
<h3 id="启动-1"><a href="#启动-1" class="headerlink" title="启动"></a>启动</h3><blockquote>
<p>会读取conf/flink-conf.yml的配置</p>
</blockquote>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">export</span> HADOOP_CLASSPATH=`hadoop classpath`</span><br><span class="line"><span class="comment"># 以detach模式启动，即客户端关闭掉，也不影响yarn上的application。</span></span><br><span class="line"><span class="comment"># -tm 指定task manager的内存大小</span></span><br><span class="line"><span class="comment"># -jm 指定job  manager的内存大小</span></span><br><span class="line">bin/yarn-session.sh -d  -tm 1024 -jm 1024</span><br></pre></td></tr></table></figure>

<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br></pre></td><td class="code"><pre><span class="line">(base) ➜  flink bin/yarn-session.sh -d  -tm 1024 -jm 1024                                         </span><br><span class="line">SLF4J: Class path contains multiple SLF4J bindings.</span><br><span class="line">SLF4J: Found binding <span class="keyword">in</span> [jar:file:/Users/arthur/opt/apache/flink-1.14.4/lib/log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]</span><br><span class="line">SLF4J: Found binding <span class="keyword">in</span> [jar:file:/Users/arthur/opt/apache/hadoop-3.3.1/share/hadoop/common/lib/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]</span><br><span class="line">SLF4J: See http://www.slf4j.org/codes.html<span class="comment">#multiple_bindings for an explanation.</span></span><br><span class="line">SLF4J: Actual binding is of <span class="built_in">type</span> [org.apache.logging.slf4j.Log4jLoggerFactory]</span><br><span class="line">2022-05-28 09:16:35,158 INFO  org.apache.flink.configuration.GlobalConfiguration           [] - Loading configuration property: jobmanager.rpc.address, localhost</span><br><span class="line">2022-05-28 09:16:35,166 INFO  org.apache.flink.configuration.GlobalConfiguration           [] - Loading configuration property: jobmanager.rpc.port, 6123</span><br><span class="line">2022-05-28 09:16:35,167 INFO  org.apache.flink.configuration.GlobalConfiguration           [] - Loading configuration property: jobmanager.memory.process.size, 3600m</span><br><span class="line">2022-05-28 09:16:35,167 INFO  org.apache.flink.configuration.GlobalConfiguration           [] - Loading configuration property: taskmanager.memory.process.size, 4728m</span><br><span class="line">2022-05-28 09:16:35,167 INFO  org.apache.flink.configuration.GlobalConfiguration           [] - Loading configuration property: taskmanager.numberOfTaskSlots, 4</span><br><span class="line">2022-05-28 09:16:35,167 INFO  org.apache.flink.configuration.GlobalConfiguration           [] - Loading configuration property: parallelism.default, 1</span><br><span class="line">2022-05-28 09:16:35,167 INFO  org.apache.flink.configuration.GlobalConfiguration           [] - Loading configuration property: high-availability, zookeeper</span><br><span class="line">2022-05-28 09:16:35,167 INFO  org.apache.flink.configuration.GlobalConfiguration           [] - Loading configuration property: high-availability.storageDir, hdfs:///lab/flink/ha/</span><br><span class="line">2022-05-28 09:16:35,167 INFO  org.apache.flink.configuration.GlobalConfiguration           [] - Loading configuration property: high-availability.zookeeper.quorum, localhost:2181</span><br><span class="line">2022-05-28 09:16:35,168 INFO  org.apache.flink.configuration.GlobalConfiguration           [] - Loading configuration property: high-availability.zookeeper.path.root, /flink</span><br><span class="line">2022-05-28 09:16:35,168 INFO  org.apache.flink.configuration.GlobalConfiguration           [] - Loading configuration property: high-availability.cluster-id, /flink_arthur_ns</span><br><span class="line">2022-05-28 09:16:35,168 INFO  org.apache.flink.configuration.GlobalConfiguration           [] - Loading configuration property: jobmanager.execution.failover-strategy, region</span><br><span class="line">2022-05-28 09:16:35,205 INFO  org.apache.flink.yarn.cli.FlinkYarnSessionCli                [] - Found Yarn properties file under /var/folders/y7/45pp3_f51f5f0z_mcj851j4h0000gn/T/.yarn-properties-arthur.</span><br><span class="line">2022-05-28 09:16:35,645 WARN  org.apache.hadoop.util.NativeCodeLoader                      [] - Unable to load native-hadoop library <span class="keyword">for</span> your platform... using <span class="built_in">builtin</span>-java classes <span class="built_in">where</span> applicable</span><br><span class="line">2022-05-28 09:16:35,812 INFO  org.apache.flink.runtime.security.modules.HadoopModule       [] - Hadoop user <span class="built_in">set</span> to arthur (auth:SIMPLE)</span><br><span class="line">2022-05-28 09:16:35,846 INFO  org.apache.flink.runtime.security.modules.JaasModule         [] - Jaas file will be created as /var/folders/y7/45pp3_f51f5f0z_mcj851j4h0000gn/T/jaas-11283110048640415560.conf.</span><br><span class="line">2022-05-28 09:16:35,914 WARN  org.apache.flink.yarn.configuration.YarnLogConfigUtil        [] - The configuration directory (<span class="string">'/Users/arthur/opt/apache/flink-1.14.4/conf'</span>) already contains a LOG4J config file.If you want to use logback, <span class="keyword">then</span> please delete or rename the <span class="built_in">log</span> configuration file.</span><br><span class="line">2022-05-28 09:16:35,998 INFO  org.apache.hadoop.yarn.client.RMProxy                        [] - Connecting to ResourceManager at localhost/127.0.0.1:8050</span><br><span class="line">2022-05-28 09:16:36,292 INFO  org.apache.flink.runtime.util.config.memory.ProcessMemoryUtils [] - The derived from fraction jvm overhead memory (102.400mb (107374184 bytes)) is less than its min value 192.000mb (201326592 bytes), min value will be used instead</span><br><span class="line">2022-05-28 09:16:36,298 INFO  org.apache.flink.runtime.util.config.memory.ProcessMemoryUtils [] - The derived from fraction jvm overhead memory (102.400mb (107374184 bytes)) is less than its min value 192.000mb (201326592 bytes), min value will be used instead</span><br><span class="line">2022-05-28 09:16:36,298 INFO  org.apache.flink.runtime.util.config.memory.ProcessMemoryUtils [] - The derived from fraction network memory (57.600mb (60397978 bytes)) is less than its min value 64.000mb (67108864 bytes), min value will be used instead</span><br><span class="line">2022-05-28 09:16:36,526 INFO  org.apache.hadoop.conf.Configuration                         [] - resource-types.xml not found</span><br><span class="line">2022-05-28 09:16:36,526 INFO  org.apache.hadoop.yarn.util.resource.ResourceUtils           [] - Unable to find <span class="string">'resource-types.xml'</span>.</span><br><span class="line">2022-05-28 09:16:36,595 INFO  org.apache.flink.yarn.YarnClusterDescriptor                  [] - Cluster specification: ClusterSpecification&#123;masterMemoryMB=1024, taskManagerMemoryMB=1024, slotsPerTaskManager=4&#125;</span><br><span class="line">2022-05-28 09:16:39,052 INFO  org.apache.flink.runtime.util.config.memory.ProcessMemoryUtils [] - The derived from fraction jvm overhead memory (102.400mb (107374184 bytes)) is less than its min value 192.000mb (201326592 bytes), min value will be used instead</span><br><span class="line">2022-05-28 09:16:39,066 INFO  org.apache.flink.yarn.YarnClusterDescriptor                  [] - Submitting application master application_1653690191446_0011</span><br><span class="line">2022-05-28 09:16:39,115 INFO  org.apache.hadoop.yarn.client.api.impl.YarnClientImpl        [] - Submitted application application_1653690191446_0011</span><br><span class="line">2022-05-28 09:16:39,115 INFO  org.apache.flink.yarn.YarnClusterDescriptor                  [] - Waiting <span class="keyword">for</span> the cluster to be allocated</span><br><span class="line">2022-05-28 09:16:39,117 INFO  org.apache.flink.yarn.YarnClusterDescriptor                  [] - Deploying cluster, current state ACCEPTED</span><br><span class="line">2022-05-28 09:16:57,652 INFO  org.apache.flink.yarn.YarnClusterDescriptor                  [] - YARN application has been deployed successfully.</span><br><span class="line">2022-05-28 09:16:57,653 INFO  org.apache.flink.yarn.YarnClusterDescriptor                  [] - Found Web Interface localhost:58343 of application <span class="string">'application_1653690191446_0011'</span>.</span><br><span class="line">2022-05-28 09:16:57,949 INFO  org.apache.flink.shaded.curator4.org.apache.curator.utils.Compatibility [] - Running <span class="keyword">in</span> ZooKeeper 3.4.x compatibility mode</span><br><span class="line">2022-05-28 09:16:57,949 INFO  org.apache.flink.shaded.curator4.org.apache.curator.utils.Compatibility [] - Using emulated InjectSessionExpiration</span><br><span class="line">2022-05-28 09:16:57,975 INFO  org.apache.flink.shaded.curator4.org.apache.curator.framework.imps.CuratorFrameworkImpl [] - Starting</span><br><span class="line">2022-05-28 09:16:57,993 INFO  org.apache.flink.shaded.curator4.org.apache.curator.framework.imps.CuratorFrameworkImpl [] - Default schema</span><br><span class="line">2022-05-28 09:16:57,993 WARN  org.apache.flink.shaded.zookeeper3.org.apache.zookeeper.ClientCnxn [] - SASL configuration failed: javax.security.auth.login.LoginException: No JAAS configuration section named <span class="string">'Client'</span> was found <span class="keyword">in</span> specified JAAS configuration file: <span class="string">'/var/folders/y7/45pp3_f51f5f0z_mcj851j4h0000gn/T/jaas-11283110048640415560.conf'</span>. Will <span class="built_in">continue</span> connection to Zookeeper server without SASL authentication, <span class="keyword">if</span> Zookeeper server allows it.</span><br><span class="line">2022-05-28 09:16:57,995 ERROR org.apache.flink.shaded.curator4.org.apache.curator.ConnectionState [] - Authentication failed</span><br><span class="line">2022-05-28 09:16:58,000 INFO  org.apache.flink.shaded.curator4.org.apache.curator.framework.state.ConnectionStateManager [] - State change: CONNECTED</span><br><span class="line">2022-05-28 09:16:58,020 INFO  org.apache.flink.runtime.leaderretrieval.DefaultLeaderRetrievalService [] - Starting DefaultLeaderRetrievalService with ZookeeperLeaderRetrievalDriver&#123;connectionInformationPath=<span class="string">'/leader/rest_server/connection_info'</span>&#125;.</span><br><span class="line">JobManager Web Interface: http://localhost:58343</span><br><span class="line">2022-05-28 09:16:58,055 INFO  org.apache.flink.yarn.cli.FlinkYarnSessionCli                [] - The Flink YARN session cluster has been started <span class="keyword">in</span> detached mode. In order to stop Flink gracefully, use the following <span class="built_in">command</span>:</span><br><span class="line">$ <span class="built_in">echo</span> <span class="string">"stop"</span> | ./bin/yarn-session.sh -id application_1653690191446_0011</span><br><span class="line">If this should not be possible, <span class="keyword">then</span> you can also <span class="built_in">kill</span> Flink via YARN<span class="string">'s web interface or via:</span></span><br><span class="line"><span class="string">$ yarn application -kill application_1653690191446_0011</span></span><br><span class="line"><span class="string">Note that killing Flink might not clean up all job artifacts and temporary files.</span></span><br></pre></td></tr></table></figure>

<p><img src="/IT/it-bigdata-flink-installation/image-20220528092326670.png" alt="image-20220528092326670"></p>
<h3 id="停Flink"><a href="#停Flink" class="headerlink" title="停Flink"></a>停Flink</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 优雅的方式</span></span><br><span class="line"><span class="built_in">echo</span> <span class="string">"stop"</span> | ./bin/yarn-session.sh -id &lt;application id&gt;</span><br><span class="line"></span><br><span class="line"><span class="comment"># 暴力的方式</span></span><br><span class="line"><span class="comment"># 可能不会清理job artifacts和temporary files</span></span><br><span class="line">yarn application -<span class="built_in">kill</span> &lt;application id&gt;</span><br></pre></td></tr></table></figure>

<h3 id="提交任务"><a href="#提交任务" class="headerlink" title="提交任务"></a>提交任务</h3><blockquote>
<p>yarn-session模式</p>
</blockquote>
<h4 id="命令行方式"><a href="#命令行方式" class="headerlink" title="命令行方式"></a>命令行方式</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">flink ./bin/flink run -t yarn-session \        </span><br><span class="line"> -Dyarn.application.id=application_1653690191446_0011 \</span><br><span class="line"> ./examples/streaming/TopSpeedWindowing.jar</span><br></pre></td></tr></table></figure>

<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line">(base) ➜  flink ./bin/flink run -t yarn-session \        </span><br><span class="line">  -Dyarn.application.id=application_1653690191446_0011 \</span><br><span class="line">  ./examples/streaming/TopSpeedWindowing.jar</span><br><span class="line">SLF4J: Class path contains multiple SLF4J bindings.</span><br><span class="line">SLF4J: Found binding <span class="keyword">in</span> [jar:file:/Users/arthur/opt/apache/flink-1.14.4/lib/log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]</span><br><span class="line">SLF4J: Found binding <span class="keyword">in</span> [jar:file:/Users/arthur/opt/apache/hadoop-3.3.1/share/hadoop/common/lib/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]</span><br><span class="line">SLF4J: See http://www.slf4j.org/codes.html<span class="comment">#multiple_bindings for an explanation.</span></span><br><span class="line">SLF4J: Actual binding is of <span class="built_in">type</span> [org.apache.logging.slf4j.Log4jLoggerFactory]</span><br><span class="line">2022-05-28 09:22:56,925 INFO  org.apache.flink.yarn.cli.FlinkYarnSessionCli                [] - Found Yarn properties file under /var/folders/y7/45pp3_f51f5f0z_mcj851j4h0000gn/T/.yarn-properties-arthur.</span><br><span class="line">2022-05-28 09:22:56,925 INFO  org.apache.flink.yarn.cli.FlinkYarnSessionCli                [] - Found Yarn properties file under /var/folders/y7/45pp3_f51f5f0z_mcj851j4h0000gn/T/.yarn-properties-arthur.</span><br><span class="line">Executing TopSpeedWindowing example with default input data <span class="built_in">set</span>.</span><br><span class="line">Use --input to specify file input.</span><br><span class="line">Printing result to stdout. Use --output to specify output path.</span><br><span class="line">WARNING: An illegal reflective access operation has occurred</span><br><span class="line">WARNING: Illegal reflective access by org.apache.flink.api.java.ClosureCleaner (file:/Users/arthur/opt/apache/flink-1.14.4/lib/flink-dist_2.12-1.14.4.jar) to field java.lang.String.value</span><br><span class="line">WARNING: Please consider reporting this to the maintainers of org.apache.flink.api.java.ClosureCleaner</span><br><span class="line">WARNING: Use --illegal-access=warn to <span class="built_in">enable</span> warnings of further illegal reflective access operations</span><br><span class="line">WARNING: All illegal access operations will be denied <span class="keyword">in</span> a future release</span><br><span class="line">2022-05-28 09:22:57,344 WARN  org.apache.flink.yarn.configuration.YarnLogConfigUtil        [] - The configuration directory (<span class="string">'/Users/arthur/opt/apache/flink-1.14.4/conf'</span>) already contains a LOG4J config file.If you want to use logback, <span class="keyword">then</span> please delete or rename the <span class="built_in">log</span> configuration file.</span><br><span class="line">2022-05-28 09:22:57,400 INFO  org.apache.hadoop.yarn.client.RMProxy                        [] - Connecting to ResourceManager at localhost/127.0.0.1:8050</span><br><span class="line">2022-05-28 09:22:57,512 INFO  org.apache.flink.yarn.YarnClusterDescriptor                  [] - No path <span class="keyword">for</span> the flink jar passed. Using the location of class org.apache.flink.yarn.YarnClusterDescriptor to locate the jar</span><br><span class="line">2022-05-28 09:22:57,592 INFO  org.apache.flink.yarn.YarnClusterDescriptor                  [] - Found Web Interface localhost:58343 of application <span class="string">'application_1653690191446_0011'</span>.</span><br><span class="line">Job has been submitted with JobID 23d36df8aeabea35eb1ec08e8788bc5b</span><br></pre></td></tr></table></figure>



<h4 id="页面"><a href="#页面" class="headerlink" title="页面"></a>页面</h4><p><img src="/IT/it-bigdata-flink-installation/image-20220528092940808.png" alt="image-20220528092940808"></p>
<p><img src="/IT/it-bigdata-flink-installation/image-20220528093009336.png" alt="image-20220528093009336"></p>
<p><img src="/IT/it-bigdata-flink-installation/image-20220528092526928.png" alt="image-20220528092526928"></p>
<h3 id="查看任务"><a href="#查看任务" class="headerlink" title="查看任务"></a>查看任务</h3><h4 id="命令行"><a href="#命令行" class="headerlink" title="命令行"></a>命令行</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">flink bin/flink list -a -Dyarn.application.id=&lt;application id&gt; -t yarn-session</span><br></pre></td></tr></table></figure>

<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">(base) ➜  flink bin/flink list -a -Dyarn.application.id=application_1653690191446_0011 -t yarn-session</span><br><span class="line">2022-05-28 09:31:29,869 INFO  org.apache.flink.yarn.cli.FlinkYarnSessionCli                [] - Found Yarn properties file under /var/folders/y7/45pp3_f51f5f0z_mcj851j4h0000gn/T/.yarn-properties-arthur.</span><br><span class="line">2022-05-28 09:31:29,869 INFO  org.apache.flink.yarn.cli.FlinkYarnSessionCli                [] - Found Yarn properties file under /var/folders/y7/45pp3_f51f5f0z_mcj851j4h0000gn/T/.yarn-properties-arthur.</span><br><span class="line">2022-05-28 09:31:30,026 WARN  org.apache.flink.yarn.configuration.YarnLogConfigUtil        [] - The configuration directory (<span class="string">'/Users/arthur/opt/apache/flink-1.14.4/conf'</span>) already contains a LOG4J config file.If you want to use logback, <span class="keyword">then</span> please delete or rename the <span class="built_in">log</span> configuration file.</span><br><span class="line">2022-05-28 09:31:30,090 INFO  org.apache.hadoop.yarn.client.RMProxy                        [] - Connecting to ResourceManager at localhost/127.0.0.1:8050</span><br><span class="line">2022-05-28 09:31:30,200 INFO  org.apache.flink.yarn.YarnClusterDescriptor                  [] - No path <span class="keyword">for</span> the flink jar passed. Using the location of class org.apache.flink.yarn.YarnClusterDescriptor to locate the jar</span><br><span class="line">2022-05-28 09:31:30,281 INFO  org.apache.flink.yarn.YarnClusterDescriptor                  [] - Found Web Interface localhost:58343 of application <span class="string">'application_1653690191446_0011'</span>.</span><br><span class="line">Waiting <span class="keyword">for</span> response...</span><br><span class="line">------------------ Running/Restarting Jobs -------------------</span><br><span class="line">28.05.2022 09:22:58 : 23d36df8aeabea35eb1ec08e8788bc5b : CarTopSpeedWindowingExample (RUNNING)</span><br><span class="line">--------------------------------------------------------------</span><br><span class="line">No scheduled <span class="built_in">jobs</span>.</span><br></pre></td></tr></table></figure>



<h4 id="页面-1"><a href="#页面-1" class="headerlink" title="页面"></a>页面</h4><p><img src="/IT/it-bigdata-flink-installation/image-20220528092824803.png" alt="image-20220528092824803"></p>
<h2 id="问题"><a href="#问题" class="headerlink" title="问题"></a>问题</h2><ul>
<li><p>java.lang.NoSuchMethod<strong>Error</strong>: org.apache.commons.cli.Option.builder</p>
<blockquote>
<p>flink-arthur-standalonesession-0-sleety.local.out:Exception in thread “main” java.lang.NoSuchMethod<strong>Error</strong>: org.apache.commons.cli.Option.builder(Ljava/lang/String;)Lorg/apache/commons/cli/Option$Builder;</p>
</blockquote>
<p>原因</p>
<blockquote>
<p>lib目录里缺少 commons-cli-<version>.jar </version></p>
</blockquote>
</li>
</ul>
<p>  解决方案</p>
<blockquote>
<p>将最新版本的commons-cli-1.4.jar放到了lib目录</p>
</blockquote>
<p>​    </p>

    </div>

    
    
    
        

  <div class="followme">
    <p>欢迎关注我的其它发布渠道</p>

    <div class="social-list">

        <div class="social-item">
          <a target="_blank" class="social-link" href="/atom.xml">
            <span class="icon">
              <i class="fa fa-rss"></i>
            </span>

            <span class="label">RSS</span>
          </a>
        </div>
    </div>
  </div>


      <footer class="post-footer">
          <div class="post-tags">
              <a href="/tags/streaming/" rel="tag"># streaming</a>
              <a href="/tags/bigdata/" rel="tag"># bigdata</a>
              <a href="/tags/flink/" rel="tag"># flink</a>
          </div>

        


        
    <div class="post-nav">
      <div class="post-nav-item">
    <a href="/IT/it-bigdata-hive-simple-query/" rel="prev" title="hive查询和监控设置">
      <i class="fa fa-chevron-left"></i> hive查询和监控设置
    </a></div>
      <div class="post-nav-item">
    <a href="/Team/team-communication/" rel="next" title="团队沟通">
      团队沟通 <i class="fa fa-chevron-right"></i>
    </a></div>
    </div>
      </footer>
    
  </article>
  
  
  



          </div>
          

<script>
  window.addEventListener('tabs:register', () => {
    let { activeClass } = CONFIG.comments;
    if (CONFIG.comments.storage) {
      activeClass = localStorage.getItem('comments_active') || activeClass;
    }
    if (activeClass) {
      let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
      if (activeTab) {
        activeTab.click();
      }
    }
  });
  if (CONFIG.comments.storage) {
    window.addEventListener('tabs:click', event => {
      if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
      let commentClass = event.target.classList[1];
      localStorage.setItem('comments_active', commentClass);
    });
  }
</script>

        </div>
          
  
  <div class="toggle sidebar-toggle">
    <span class="toggle-line toggle-line-first"></span>
    <span class="toggle-line toggle-line-middle"></span>
    <span class="toggle-line toggle-line-last"></span>
  </div>

  <aside class="sidebar">
    <div class="sidebar-inner">

      <ul class="sidebar-nav motion-element">
        <li class="sidebar-nav-toc">
          文章目录
        </li>
        <li class="sidebar-nav-overview">
          站点概览
        </li>
      </ul>

      <!--noindex-->
      <div class="post-toc-wrap sidebar-panel">
          <div class="post-toc motion-element"><ol class="nav"><li class="nav-item nav-level-2"><a class="nav-link" href="#Standalone"><span class="nav-number">1.</span> <span class="nav-text">Standalone</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#Zookeeper-HA"><span class="nav-number">2.</span> <span class="nav-text">Zookeeper HA</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#flink-shade-hadoop"><span class="nav-number">2.1.</span> <span class="nav-text">flink-shade-hadoop</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#flink-conf-xml"><span class="nav-number">2.2.</span> <span class="nav-text">flink-conf.xml</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#zookeeper"><span class="nav-number">2.3.</span> <span class="nav-text">zookeeper</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#masters"><span class="nav-number">2.4.</span> <span class="nav-text">masters</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#workers"><span class="nav-number">2.5.</span> <span class="nav-text">workers</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#启动"><span class="nav-number">2.6.</span> <span class="nav-text">启动</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#zookeeper-记录"><span class="nav-number">2.7.</span> <span class="nav-text">zookeeper 记录</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#hdfs-ha目录"><span class="nav-number">2.8.</span> <span class="nav-text">hdfs ha目录</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#Yarn"><span class="nav-number">3.</span> <span class="nav-text">Yarn</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#启动-1"><span class="nav-number">3.1.</span> <span class="nav-text">启动</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#停Flink"><span class="nav-number">3.2.</span> <span class="nav-text">停Flink</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#提交任务"><span class="nav-number">3.3.</span> <span class="nav-text">提交任务</span></a><ol class="nav-child"><li class="nav-item nav-level-4"><a class="nav-link" href="#命令行方式"><span class="nav-number">3.3.1.</span> <span class="nav-text">命令行方式</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#页面"><span class="nav-number">3.3.2.</span> <span class="nav-text">页面</span></a></li></ol></li><li class="nav-item nav-level-3"><a class="nav-link" href="#查看任务"><span class="nav-number">3.4.</span> <span class="nav-text">查看任务</span></a><ol class="nav-child"><li class="nav-item nav-level-4"><a class="nav-link" href="#命令行"><span class="nav-number">3.4.1.</span> <span class="nav-text">命令行</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#页面-1"><span class="nav-number">3.4.2.</span> <span class="nav-text">页面</span></a></li></ol></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#问题"><span class="nav-number">4.</span> <span class="nav-text">问题</span></a></li></ol></div>
      </div>
      <!--/noindex-->

      <div class="site-overview-wrap sidebar-panel">
        <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
    <img class="site-author-image" itemprop="image" alt="李联友"
      src="/images/header.jpg">
  <p class="site-author-name" itemprop="name">李联友</p>
  <div class="site-description" itemprop="description"></div>
</div>
<div class="site-state-wrap motion-element">
  <nav class="site-state">
      <div class="site-state-item site-state-posts">
          <a href="/archives/">
        
          <span class="site-state-item-count">31</span>
          <span class="site-state-item-name">日志</span>
        </a>
      </div>
      <div class="site-state-item site-state-categories">
            <a href="/categories/">
          
        <span class="site-state-item-count">8</span>
        <span class="site-state-item-name">分类</span></a>
      </div>
      <div class="site-state-item site-state-tags">
            <a href="/tags/">
          
        <span class="site-state-item-count">25</span>
        <span class="site-state-item-name">标签</span></a>
      </div>
  </nav>
</div>
  <div class="links-of-author motion-element">
      <span class="links-of-author-item">
        <a href="https://github.com/lianyouli" title="GitHub → https:&#x2F;&#x2F;github.com&#x2F;lianyouli" rel="noopener" target="_blank"><i class="fab fa-github fa-fw"></i>GitHub</a>
      </span>
  </div>



      </div>

    </div>
  </aside>
  <div id="sidebar-dimmer"></div>


      </div>
    </main>

    <footer class="footer">
      <div class="footer-inner">
        

        

<div class="copyright">
  
  &copy; 
  <span itemprop="copyrightYear">2023</span>
  <span class="with-love">
    <i class="fa fa-heart"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">李联友</span>
</div>
  <div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://mist.theme-next.org/" class="theme-link" rel="noopener" target="_blank">NexT.Mist</a> 强力驱动
  </div>

<script src="/js/jquery.min.js"> </script>

        








      </div>
    </footer>
  </div>

  
  <script src="/lib/anime.min.js"></script>
  <script src="/lib/velocity/velocity.min.js"></script>
  <script src="/lib/velocity/velocity.ui.min.js"></script>

<script src="/js/utils.js"></script>

<script src="/js/motion.js"></script>


<script src="/js/schemes/muse.js"></script>


<script src="/js/next-boot.js"></script>



<script src="/js/code-unfold.js"></script>


  















  

  

</body>
</html>
